<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>layui</title>
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <link rel="stylesheet" href="../lib/layui-v2.6.3/css/layui.css" media="all">
    <link rel="stylesheet" href="../css/public.css" media="all">
</head>
<body>
<div class="layuimini-container">
    <div class="layuimini-main">
        <fieldset class="table-search-fieldset">
            <legend>搜索信息</legend>
            <div style="margin: 10px 10px 10px 10px">
                <form class="layui-form layui-form-pane" action="">
                    <div class="layui-form-item">
                        <div class="layui-inline">
                            <label class="layui-form-label">用户姓名</label>
                            <div class="layui-input-inline">
                                <input type="text" name="username" autocomplete="off" class="layui-input">
                            </div>
                        </div>
                        <div class="layui-inline">
                            <label class="layui-form-label">用户性别</label>
                            <div class="layui-input-inline">
                                <input type="text" name="sex" autocomplete="off" class="layui-input">
                            </div>
                        </div>
                        <div class="layui-inline">
                            <label class="layui-form-label">用户城市</label>
                            <div class="layui-input-inline">
                                <input type="text" name="city" autocomplete="off" class="layui-input">
                            </div>
                        </div>
                        <div class="layui-inline">
                            <label class="layui-form-label">用户职业</label>
                            <div class="layui-input-inline">
                                <input type="text" name="classify" autocomplete="off" class="layui-input">
                            </div>
                        </div>
                        <div class="layui-inline">
                            <button type="submit" class="layui-btn layui-btn-primary" lay-submit
                                    lay-filter="data-search-btn"><i class="layui-icon"></i> 搜 索
                            </button>
                        </div>
                    </div>
                </form>
            </div>
        </fieldset>

        <script type="text/html" id="toolbarDemo">
            <div class="layui-btn-container">
                <button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" lay-event="add"> 添加</button>
                <button class="layui-btn layui-btn-sm layui-btn-danger data-delete-btn" lay-event="delete"> 删除</button>
            </div>
        </script>

        <table class="layui-hide" id="currentTableId" lay-filter="currentTableFilter"></table>

        <script type="text/html" id="currentTableBar">
            <a class="layui-btn layui-btn-normal layui-btn-xs data-count-edit" lay-event="edit">编辑</a>
            <a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" lay-event="delete">删除</a>
        </script>

    </div>
</div>
<script src="../lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script>
    let dept = []
    let position = []
    var $ = layui.$

    let promiseDept = $.ajax({
        url: "/deptShowAll",
        type: "get",
        data: {},
        dataType: "text",
        contentType: "text/html",
        success: function (data) {
            var data = JSON.parse(data);
            if (data.code == "0") {
                var deptDate = data.data;
                for (var i = 0; i < deptDate.length; i++) {
                    dept.push({
                        "dpId": deptDate[i].dpId,
                        "dpName": deptDate[i].dpName,
                    })
                }
            }
            //resolve();
        },
        error:function (data){
            //reject(data)
        }
    })

    let promisePosition = $.ajax({
        url: "/positionShowAll",
        type: "get",
        data: {},
        dataType: "text",
        contentType: "text/html",
        success: function (data) {
            var data = JSON.parse(data);
            if (data.code == "0") {
                var positionDate = data.data;
                for (var i = 0; i < positionDate.length; i++) {
                    position.push({
                        "psId": positionDate[i].psId,
                        "psName": positionDate[i].psName,
                    })
                }
            }
        },
        error:function (data){
        }
    })

    function getDeptDate() {
        var $ = layui.$
        //var dept = [];
        return Promise.all([promiseDept,promisePosition]).then(function (results){
            //let resultDept = results[0];
            //let resultPosition = results[1];
            //console.log(results[1])
        }).catch(function (error) {
            layer.msg('失败，' + error , function () {
            });
        })
    }


    layui.use(['form', 'table'], function () {
        var $ = layui.jquery,
            form = layui.form,
            table = layui.table;

        getDeptDate().then(function (){
            table.render({
                elem: '#currentTableId',
                url: '/staffShowAll',
                toolbar: '#toolbarDemo',
                defaultToolbar: ['filter', 'exports', 'print', {
                    title: '提示',
                    layEvent: 'LAYTABLE_TIPS',
                    icon: 'layui-icon-tips'
                }],
                cols: [[
                    {type: "checkbox", width: 50},
                    {field: 'siUuid', width: 120, title: 'UUID'},
                    {field: 'siId', width: 120, title: '工号'},
                    {field: 'siName', width: 150, title: '姓名'},
                    {
                        field: 'siSex',
                        width: 80,
                        title: '性别',
                        templet: function (data) {
                            if (data.siSex === 1) {
                                return "女"
                            } else if (data.siSex === 0) {
                                return "男"
                            } else {
                                return "异常"
                            }
                        }
                    },
                    {
                        field: 'siBirth',
                        title: '出生日期',
                        width: 200,
                        sort: true,
                        templet: function (data) {
                            var date = new Date(data.siBirth)
                            let year = date.getFullYear();
                            let month = date.getMonth() + 1;
                            let day = date.getDate();
                            let formattedDate = `${year}年${month}月${day}日`;
                            return formattedDate;
                        }
                    },
                    {
                        field: 'dpId',
                        width: 150,
                        title: '部门',
                        templet: function (data) {
                            var dpId = data.dpId
                            for (const deptData of dept) {
                                if (dpId === deptData.dpId){
                                    return deptData.dpName
                                }
                            }
                            return "数据异常"
                        }
                    },
                    {field: 'psId',
                        width: 150,
                        title: '职位',
                        templet: function (data) {
                            var psId = data.psId
                            for (const positionData of position) {
                                if (psId === positionData.psId){
                                    return positionData.psName
                                }
                            }
                            return "数据异常"
                        }
                    },
                    {field: 'siAuth',
                        width: 100,
                        title: '权限',
                        templet: function (data) {
                            var siAuth = data.siAuth
                            if (siAuth===0){
                                return "普通员工"
                            }else if (siAuth===1){
                                return "管理员"
                            }else {
                                return "数据异常"
                            }
                        }
                    },
                    {title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"}
                ]],
                limits: [10, 15, 20, 25, 50, 100],
                limit: 15,
                page: true,
                skin: 'line'
            })
        })


        // 监听搜索操作
        form.on('submit(data-search-btn)', function (data) {
            var result = JSON.stringify(data.field);
            layer.alert(result, {
                title: '最终的搜索信息'
            });

            //执行搜索重载
            table.reload('currentTableId', {
                page: {
                    curr: 1
                }
                , where: {
                    searchParams: result
                }
            }, 'data');

            return false;
        });

        /**
         * toolbar监听事件
         */
        table.on('toolbar(currentTableFilter)', function (obj) {
            if (obj.event === 'add') {  // 监听添加操作
                var index = layer.open({
                    title: '添加用户',
                    type: 2,
                    shade: 0.2,
                    maxmin: true,
                    shadeClose: true,
                    area: ['100%', '100%'],
                    content: '../page/table/staffAdd.html',
                });
                $(window).on("resize", function () {
                    layer.full(index);
                });
            } else if (obj.event === 'delete') {  // 监听删除操作
                var checkStatus = table.checkStatus('currentTableId')
                    , data = checkStatus.data;
                layer.confirm('真的删除吗', function (index) {
                    layer.close(index);
                    for (let i = 0; i < data.length; i++) {
                        $.ajax({
                            url:"/staffDelByUUID",
                            type:"get",
                            data:{
                                "siUuid":data[i].siUuid,
                            },
                            dataType:"text",
                            contentType:"text/html",
                            success:function (data){
                                var data = JSON.parse(data);
                                if (data.code === 0) {
                                    layer.msg('删除成功', function () {
                                        table.reload('currentTableId',{  //表格重载，刷新数据 currentTableId是数据表格的id
                                            url:'/staffShowAll',
                                            page: {
                                                curr:1
                                            }
                                        });
                                    });
                                } else {
                                    if (data.description !== "null") {
                                        layer.msg('删除失败，' + data.description + '', function () {
                                        });
                                    } else {
                                        layer.msg('删除失败，' + data.message + '', function () {
                                        });
                                    }
                                }
                            }
                        })
                    }
                });
            }
        });

        //监听表格复选框选择
        table.on('checkbox(currentTableFilter)', function (obj) {
            console.log(obj)
        });

        table.on('tool(currentTableFilter)', function (obj) {
            var data = obj.data;
            localStorage.setItem("staffInfo",JSON.stringify(data))
            if (obj.event === 'edit') {
                //console.log(data)
                var index = layer.open({
                    title: '编辑用户',
                    type: 2,
                    shade: 0.2,
                    maxmin: true,
                    shadeClose: true,
                    area: ['100%', '100%'],
                    content: '../page/table/staffEdit.html',
                });
                $(window).on("resize", function () {
                    layer.full(index);
                });
                return false;
            } else if (obj.event === 'delete') {
                layer.confirm('真的删除行么', function (index) {
                    $.ajax({
                        url:"/staffDelByUUID",
                        type:"get",
                        data:{
                            "siUuid":data.siUuid,
                        },
                        dataType:"text",
                        contentType:"text/html",
                        success:function (data){
                            var data = JSON.parse(data);
                            if (data.code === 0) {
                                layer.msg('删除成功', function () {
                                    table.reload('currentTableId',{  //表格重载，刷新数据 currentTableId是数据表格的id
                                        url:'/staffShowAll',
                                        page: {
                                            curr:1
                                        }
                                    });
                                });
                            } else {
                                if (data.description !== "null") {
                                    layer.msg('删除失败，' + data.description + '', function () {
                                    });
                                } else {
                                    layer.msg('删除失败，' + data.message + '', function () {
                                    });
                                }
                            }
                        }
                    })
                });
            }
        });

    });
</script>

</body>
</html>
